<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      var arr = ["孙悟空", "猪八戒", "沙和尚"];
      var arr2 = ["白骨精", "玉兔精", "蜘蛛精"];

      /**
       * concat（）可以连接两个或多个数组，并将新的数组返回
       *     该方法不会对原数组产生影响
       */
      var result = arr.concat(arr2);

      /**
       * join()
       *   该方法可以将数组转换一个字符串
        该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
        */
      arr = ["孙悟空", "猪八戒", "沙和尚"];
      result = arr.join();

      /**
       * reverse()
       *   该方法用来反转数组（前边的去后边，后边的去前边）
       *   该方法会直接修改原数组
       */

      /**sort()
       *   可以用来对数组排序
       *    也会影响原数组，默认会按照Unicode编码来排序，
       *    所以对数字排序时，可能会得到错误的结果
       *
       * 可以自己来指定排序的规则
       *  在sort（）添加一个回调函数，来指定排序规则
       *   回调函数中需要定义两个形参
       *   浏览器将会分别使用数组中的元素作为实参去调用回调函数
       *   使用哪个元素调用不确定，但是肯定的是在数组中a一定在b前面
       * 浏览器会根据回调函数的返回值来决定元素的顺序，
       *   如果返回一个大于0的值，则元素会交换位置
       *   如果返回一个小于0的值，则元素位置不变
       *   如果返回一个0，则元素会认为两个元素相等，不交换位置
       */
      arr = [5, 4];
      arr.sort(function (a, b) {
        // 前边的大
        if (a > b) {
          return -1;
        } else if (a < b) {
          return 1;
        } else {
          return 0;
        }

        // 升序排列
        // return a-b;
        // 降序
        return b - 1;
      });
      console.log(arr);
    </script>
  </head>
  <body></body>
</html>
